package demo // 确保包名是demo

import (
	"fmt"
)

func init() {
	fmt.Println("demo 测试代码运行中...")
	// type MyStruct struct {
	// 	Name string
	// 	Age  int
	// }

	// s := MyStruct{"Alice", 25}
	// t := reflect.TypeOf(s)
	// v := reflect.ValueOf(s)

	// newInstance := reflect.New(t).Interface()
	// r := newInstance.(*MyStruct)
	// r.Name = "Bob"
	// r.Age = 30

	// fmt.Printf("newInstance: %+v\n", newInstance) // newInstance: &{Name: Age:0}
	// fmt.Printf("r: %+v\n", *r)                    // s: {Name:Alice Age:25}
	// fmt.Printf("s: %+v\n", s)                     // s: {Name:Alice Age:25}
	// type Docuemnt struct {
	// 	Name string `json:"name"`
	// 	Age  int    `json:"age"`
	// }
	// document := Docuemnt{Name: "Alice", Age: 25}

	// fmt.Println("v.Kind() == reflect.Ptr", document.Name)

	// fmt.Println("v.Kind() == reflect.Ptr", document)

	// v := reflect.ValueOf(document)

	// // fmt.Println("v.Kind() == reflect.Ptr", v.Interface())

	// nameField := v.FieldByName("Name").Interface().(string)
	// fmt.Println("Name:", nameField)

}
